<?php

require_once "ptempl.php";

function generarDatos ($datos, $filas) {
  $res = array($filas);
  for ($p = 0; $p < $filas; $p ++)
    $res[$p + 1] = array(
      'numero' => (string) $datos[$p],
      'doble' => (string) ($datos[$p] * 2),
      'mitad' =>  (string) ($datos[$p] / 2)
    );
  return $res;
}

function procesarParametros ($nombreEtiqueta, $parametros) {
  switch ($nombreEtiqueta) {
    case 'titulo': return array(1 => $parametros['titulo pagina']);
    case 'fondo': return array(1 => $parametros['color fondo']);
    case 'encabezado': return $parametros['mostrar encabezado'];
    case 'lineas': return $parametros['lineas final'];
  }
  return null;
}

$template = file_get_contents("template.htm");

$filas = rand(5, 10);
$datos = array();
for ($pos = 0; $pos < $filas; $pos ++)
  $datos[$pos] = rand(100, 249) * 2;

$parametros = array(
  'color fondo' => "#ffffff",
  'titulo pagina' => "Prueba de ptempl.php",
  'mostrar encabezado' => true,
  'lineas final' => 3
);

$resultado = parse_template($template, array(
  'tabla'        => function () {return array(1 => "Numero", "Doble", "Mitad");},
  'filaTabla'    => 'generarDatos',
  'lineas'       => function () {return null;},
  'mensaje'      => function ($d, $f) {return "Se generaron $f numeros";}
), $datos, $filas);

$resultado = parse_template($resultado, 'procesarParametros', $parametros);

echo $resultado;

?>